<template>
    <view>
        <!-- 搜索 -->
        <search />

        <!-- 分类 -->
        <view class="category">
            <!-- 顶级分类 -->
            <view class="sup">
                <scroll-view scroll-y>
                    <text
                        :key="item.cat_id"
                        v-for="(item, i) in cates"
                        :class="{ active: i === active }"
                        @click="switchCate(i)"
                        >{{ item.cat_name }}</text
                    >
                </scroll-view>
            </view>

            <!-- 子级分类 -->
            <view class="sub">
                <scroll-view scroll-y>
                    <!-- 封面图 -->
                    <image
                        src="http://static.botue.com/ugo/uploads/category.png"
                        class="thumb"
                    />

                    <view
                        class="children"
                        :key="item.cat_id"
                        v-for="item in sub"
                    >
                        <view class="title">{{ item.cat_name }}</view>
                        <!-- 品牌 -->
                        <view class="brands">
                            <navigator
                                :url="
                                    '/packone/list/index?query=' + it.cat_name
                                "
                                :key="it.cat_id"
                                v-for="it in item.children"
                            >
                                <image :src="it.cat_icon" />
                                <text>{{ it.cat_name }}</text>
                            </navigator>
                        </view>
                    </view>
                </scroll-view>
            </view>
        </view>
    </view>
</template>

<script>
import search from "../../components/search/index";
export default {
    components: { search },
    data() {
        return {
            // 分类数据
            cates: [],
            // 一级分类选中的索引
            active: 0,
        };
    },
    computed: {
        // 子级分类
        sub() {
            return this.cates.length && this.cates[0].children;
        },
    },
    methods: {
        // 获取分类数据
        async getCate() {
            const { meta: msg, message: data } = await this.request({
                url: "/api/public/v1/categories",
            });
            console.log(msg, data);
            if (msg.status === 200) {
                this.cates = data;
            }
        },

        // 一级分类交互
        switchCate(index) {
            this.active = index;
        },
    },
    onLoad() {
        this.getCate();
    },
};
</script>

<style scoped lang="less">
.category {
    display: flex;
    width: 100%;
    position: absolute;
    top: 100rpx;
    bottom: 0;

    .sup {
        width: 196rpx;
        background-color: #f4f4f4;

        text {
            display: block;
            height: 100rpx;
            text-align: center;
            line-height: 100rpx;
            font-size: 27rpx;
            color: #333;
            border-bottom: 1rpx solid #eee;

            &:last-child {
                border-bottom: none;
            }

            &.active {
                background-color: #fff;
                color: #ea4451;
                position: relative;

                &::before {
                    content: "";
                    display: block;
                    width: 8rpx;
                    height: 60rpx;
                    transform: translateY(-50%);
                    background-color: #ea4451;

                    position: absolute;
                    left: 0;
                    top: 50%;
                }
            }
        }
    }

    .sub {
        flex: 1;
        padding: 20rpx 18rpx;

        .thumb {
            width: 100%;
            height: 180rpx;
        }

        .children {
            text-align: center;
            color: #333;

            .title {
                display: inline-block;
                margin: 40rpx 0 20rpx;
                font-size: 30rpx;

                &::before {
                    content: "/";
                    margin-right: 20rpx;
                    color: #666;
                }

                &::after {
                    content: "/";
                    margin-left: 20rpx;
                    color: #666;
                }
            }
        }

        .brands {
            display: flex;
            flex-wrap: wrap;

            navigator {
                width: 33%;
                margin-bottom: 20rpx;
            }

            image {
                width: 120rpx;
                height: 120rpx;
            }

            text {
                display: block;
                font-size: 24rpx;
            }
        }
    }
}
</style>
